MATLAB® is a product of The MathWorks, Inc. of Natick, Mass., that provides engineers, scientists, mathematicians, educators, and others across a diverse range of industries with an environment for technical computing applications. MATLAB® is an intuitive high performance language and technical computing environment that provides mathematical and graphical tools for mathematical computation, data analysis, visualization and algorithm development. MATLAB® integrates numerical analysis, matrix computation, signal processing, including, for example, image processing, and graphics in an easy-to-use environment where problems and solutions are expressed in familiar mathematical notation, without traditional programming. MATLAB® is used to solve and/or analyze complex engineering and scientific problems by developing mathematical models of the problem. A model is designed, tested and analyzed by running the model under multiple boundary conditions, data parameters, or just a number of initial guesses. In MATLAB®, one can easily modify the model, plot a new variable or reformulate the problem in a rapid interactive fashion that is typically not feasible in a non-interpreted programming language with static typing such as Fortran or C.
Besides using a textual modeling environment, such as MATLAB®, graphical modeling environments, such as Simulink® from The MathWorks, Inc. of Natick, Mass., can also be used to create a model. Graphical models such as block diagrams, are commonly used to represent a design, or algorithm, of an implementation for computational hardware or wetware, for example, an implementation given in software. One or more block diagrams may in their entirety or partially represent a design for a target hardware platform. A target hardware platform used in this application may include a single computational hardware component or multiple computational hardware components that can be of different types. A target hardware platform may also have other elements such as memory, interfaces, and other integrated circuits (ICs). A computational hardware component is used to mean any hardware component with computational capability, such as a digital signal processor (DSP), general-purpose processor (GPP), graphics processing unit (GPU), microcontroller, application specific integrated circuit (ASIC), application-specific instruction-set processor (ASH)), field-programmable gate array (FPGA), biocomputer, quantum computer, and the like.
An automatic code generation application can automatically generate code and build programs from the textual model or graphical model for implementation on the computational platform based on the design. Typically, when code is automatically generated, large library files (.lib files) or object (.obj) files from the libraries are linked to the automatically generated code. Before linking can occur, the entire library must be compiled. Each of the libraries can contain hundreds or thousands of source modules, most of which may not be used by the automatically generated code. However, in the prior art, even though only one source module from the library is needed to build a model, the entire library needs to be compiled, which can be time consuming. Additionally, if the automatically generated code is to be ported to a different platform without code changes, all of the source files for all of the libraries must be ported to the new environment and recompiled. The time to recompile all the source files can also be time consuming especially the target system usually does not have as much computational power as the host computer that simulates the model and generates code from the model.